package com.ytjj.qmyx.mall.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class PresellSubscribeInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PresellSubscribeInfoExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameIsNull() {
            addCriterion("subscribe_name is null");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameIsNotNull() {
            addCriterion("subscribe_name is not null");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameEqualTo(String value) {
            addCriterion("subscribe_name =", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameNotEqualTo(String value) {
            addCriterion("subscribe_name <>", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameGreaterThan(String value) {
            addCriterion("subscribe_name >", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameGreaterThanOrEqualTo(String value) {
            addCriterion("subscribe_name >=", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameLessThan(String value) {
            addCriterion("subscribe_name <", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameLessThanOrEqualTo(String value) {
            addCriterion("subscribe_name <=", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameLike(String value) {
            addCriterion("subscribe_name like", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameNotLike(String value) {
            addCriterion("subscribe_name not like", value, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameIn(List<String> values) {
            addCriterion("subscribe_name in", values, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameNotIn(List<String> values) {
            addCriterion("subscribe_name not in", values, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameBetween(String value1, String value2) {
            addCriterion("subscribe_name between", value1, value2, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeNameNotBetween(String value1, String value2) {
            addCriterion("subscribe_name not between", value1, value2, "subscribeName");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneIsNull() {
            addCriterion("subscribe_phone is null");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneIsNotNull() {
            addCriterion("subscribe_phone is not null");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneEqualTo(String value) {
            addCriterion("subscribe_phone =", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneNotEqualTo(String value) {
            addCriterion("subscribe_phone <>", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneGreaterThan(String value) {
            addCriterion("subscribe_phone >", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneGreaterThanOrEqualTo(String value) {
            addCriterion("subscribe_phone >=", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneLessThan(String value) {
            addCriterion("subscribe_phone <", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneLessThanOrEqualTo(String value) {
            addCriterion("subscribe_phone <=", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneLike(String value) {
            addCriterion("subscribe_phone like", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneNotLike(String value) {
            addCriterion("subscribe_phone not like", value, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneIn(List<String> values) {
            addCriterion("subscribe_phone in", values, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneNotIn(List<String> values) {
            addCriterion("subscribe_phone not in", values, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneBetween(String value1, String value2) {
            addCriterion("subscribe_phone between", value1, value2, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andSubscribePhoneNotBetween(String value1, String value2) {
            addCriterion("subscribe_phone not between", value1, value2, "subscribePhone");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressIsNull() {
            addCriterion("receive_adress is null");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressIsNotNull() {
            addCriterion("receive_adress is not null");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressEqualTo(String value) {
            addCriterion("receive_adress =", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressNotEqualTo(String value) {
            addCriterion("receive_adress <>", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressGreaterThan(String value) {
            addCriterion("receive_adress >", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressGreaterThanOrEqualTo(String value) {
            addCriterion("receive_adress >=", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressLessThan(String value) {
            addCriterion("receive_adress <", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressLessThanOrEqualTo(String value) {
            addCriterion("receive_adress <=", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressLike(String value) {
            addCriterion("receive_adress like", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressNotLike(String value) {
            addCriterion("receive_adress not like", value, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressIn(List<String> values) {
            addCriterion("receive_adress in", values, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressNotIn(List<String> values) {
            addCriterion("receive_adress not in", values, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressBetween(String value1, String value2) {
            addCriterion("receive_adress between", value1, value2, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andReceiveAdressNotBetween(String value1, String value2) {
            addCriterion("receive_adress not between", value1, value2, "receiveAdress");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeIsNull() {
            addCriterion("subscribe_time is null");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeIsNotNull() {
            addCriterion("subscribe_time is not null");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeEqualTo(Date value) {
            addCriterion("subscribe_time =", value, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeNotEqualTo(Date value) {
            addCriterion("subscribe_time <>", value, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeGreaterThan(Date value) {
            addCriterion("subscribe_time >", value, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("subscribe_time >=", value, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeLessThan(Date value) {
            addCriterion("subscribe_time <", value, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeLessThanOrEqualTo(Date value) {
            addCriterion("subscribe_time <=", value, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeIn(List<Date> values) {
            addCriterion("subscribe_time in", values, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeNotIn(List<Date> values) {
            addCriterion("subscribe_time not in", values, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeBetween(Date value1, Date value2) {
            addCriterion("subscribe_time between", value1, value2, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andSubscribeTimeNotBetween(Date value1, Date value2) {
            addCriterion("subscribe_time not between", value1, value2, "subscribeTime");
            return (Criteria) this;
        }

        public Criteria andActiveNameIsNull() {
            addCriterion("active_name is null");
            return (Criteria) this;
        }

        public Criteria andActiveNameIsNotNull() {
            addCriterion("active_name is not null");
            return (Criteria) this;
        }

        public Criteria andActiveNameEqualTo(String value) {
            addCriterion("active_name =", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameNotEqualTo(String value) {
            addCriterion("active_name <>", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameGreaterThan(String value) {
            addCriterion("active_name >", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameGreaterThanOrEqualTo(String value) {
            addCriterion("active_name >=", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameLessThan(String value) {
            addCriterion("active_name <", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameLessThanOrEqualTo(String value) {
            addCriterion("active_name <=", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameLike(String value) {
            addCriterion("active_name like", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameNotLike(String value) {
            addCriterion("active_name not like", value, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameIn(List<String> values) {
            addCriterion("active_name in", values, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameNotIn(List<String> values) {
            addCriterion("active_name not in", values, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameBetween(String value1, String value2) {
            addCriterion("active_name between", value1, value2, "activeName");
            return (Criteria) this;
        }

        public Criteria andActiveNameNotBetween(String value1, String value2) {
            addCriterion("active_name not between", value1, value2, "activeName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameIsNull() {
            addCriterion("subscribe_product_name is null");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameIsNotNull() {
            addCriterion("subscribe_product_name is not null");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameEqualTo(String value) {
            addCriterion("subscribe_product_name =", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameNotEqualTo(String value) {
            addCriterion("subscribe_product_name <>", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameGreaterThan(String value) {
            addCriterion("subscribe_product_name >", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("subscribe_product_name >=", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameLessThan(String value) {
            addCriterion("subscribe_product_name <", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameLessThanOrEqualTo(String value) {
            addCriterion("subscribe_product_name <=", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameLike(String value) {
            addCriterion("subscribe_product_name like", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameNotLike(String value) {
            addCriterion("subscribe_product_name not like", value, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameIn(List<String> values) {
            addCriterion("subscribe_product_name in", values, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameNotIn(List<String> values) {
            addCriterion("subscribe_product_name not in", values, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameBetween(String value1, String value2) {
            addCriterion("subscribe_product_name between", value1, value2, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andSubscribeProductNameNotBetween(String value1, String value2) {
            addCriterion("subscribe_product_name not between", value1, value2, "subscribeProductName");
            return (Criteria) this;
        }

        public Criteria andProductMarkIsNull() {
            addCriterion("product_mark is null");
            return (Criteria) this;
        }

        public Criteria andProductMarkIsNotNull() {
            addCriterion("product_mark is not null");
            return (Criteria) this;
        }

        public Criteria andProductMarkEqualTo(Integer value) {
            addCriterion("product_mark =", value, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkNotEqualTo(Integer value) {
            addCriterion("product_mark <>", value, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkGreaterThan(Integer value) {
            addCriterion("product_mark >", value, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_mark >=", value, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkLessThan(Integer value) {
            addCriterion("product_mark <", value, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkLessThanOrEqualTo(Integer value) {
            addCriterion("product_mark <=", value, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkIn(List<Integer> values) {
            addCriterion("product_mark in", values, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkNotIn(List<Integer> values) {
            addCriterion("product_mark not in", values, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkBetween(Integer value1, Integer value2) {
            addCriterion("product_mark between", value1, value2, "productMark");
            return (Criteria) this;
        }

        public Criteria andProductMarkNotBetween(Integer value1, Integer value2) {
            addCriterion("product_mark not between", value1, value2, "productMark");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}